#pragma once

class ObjInterface
{
public:

	//////////////////////////////////////////////////////////////////////////
	// FUNCTION: Render
	//////////////////////////////////////////////////////////////////////////
	virtual void Render(const rect& viewPort) = 0;

	//////////////////////////////////////////////////////////////////////////
	// FUNCTION: Update
	//
	// moveAmt is the final amount to move by (already modified by timeStep)
	//////////////////////////////////////////////////////////////////////////
	virtual void Update(double dTimeStep, const pointf* moveAmt = NULL) = 0;

	//////////////////////////////////////////////////////////////////////////
	//	FUNCTION: Input
	//
	//
	//////////////////////////////////////////////////////////////////////////
	virtual void Input(const POINT& mouse) = 0;

	//////////////////////////////////////////////////////////////////////////
	// SetPostBaseCTORVars - any basee values that need to wait to be set until after
	//						 the Object CTOR has been called. This is used because
	//						 of multiple constructors so there's less duplicated code
	//
	//////////////////////////////////////////////////////////////////////////
	virtual void SetPostBaseCTORVars() = 0;
};